/* 删除递增链表中重复的元素 */

#include <iostream>
#include "headfun.h"
using namespace std;

// 删除重复元素
void del(LNode *&L)
{
  // 辅助指针
  LNode *p = L->next;
  LNode *q;
  
  // 链表为空，直接返回
  if (p == NULL)
    return;
  
  // 遍历链表
  while (p->next != NULL)
  {
    // 指向前后两个结点
    q = p->next;
    
    // 数值一样，删除结点
    if (p->data == q->data)
    {
      p->next = q->next;
      free(q);
    }
    
    // 否则，继续遍历
    else
      p = p->next;
  }
}

int main()
{
  // 创建递增链表
  LNode *A = head_Linklist();
  
  // 删除重复元素
  del(A);
  
  // 打印信息
  LNode *q = A->next;
  cout << "去重之后的A链表：";
  while (q != NULL)
  {
    cout << q->data << " ";
    q = q->next;
  }
  
  return 0;
}